The present invention relates generally to data analysis, and more particularly to a system and method for manipulating values within multi-dimensional databases.
Businesses generally can be modeled as a set of hierarchies. For example, their market might be divided into multiple regions; each region might be further divided into districts. The districts may include two or more cities. Each city might be further subdivided into a number of sales people.
Products are more obviously divided. The products sold by a company might include soft drinks and snacks. The snacks might be divided into potato chips, pretzels, etc.; the potato chips might include ridged potato chips and non-ridged potato chips.
To be useful, decision support systems must support analysis based not only on historical data but also on projections for future activities. For instance, marketing may project sales for the next three months. These figures may then be introduced into a model used to tune manufacturing output over that period of time.
Business users want to be able make forecasts anywhere within the context of their business hierarchies. The business may want sales people entering projected sales; it may want district managers reviewing and changing that data at the district product group level; and it may want financial people reviewing and modifying data across a region, across multiple regions, or across the country.
Multidimensional analysis allows users to select, summarize, calculate, format and report by dimensions and by attributes within dimensions. It can be used to support virtually any time-series decision support application, including reporting, analysis, forecasting and budgeting.
Typically, changes made at any level must propagate up and down the hierarchies dynamically so that anyone who wants to do some analysis can make a change and look to see what the impact of that change was. In addition to those changes, the users might need to lock some values. For example, if there were capacity limits one might want to lock a value at the capacity limit so that nothing went beyond that.
To date, much of this analysis has been weak and performed using multidimensional databases having fixed hierarchical positions. What is needed is a system and method for adjusting values within multiple drillable hierarchies, while allowing both dynamic aggregation and disaggregation, with locked values, within an OLAP framework.
The present invention is a system and method of adjusting a value within a database configured as a multidimensional aggregation tree (MAT) having a plurality of leaves. A value associated with a vertex within the MAT is modified, propagated down toward the leaves of the MAT and reconciled up through the tree from the leaf to determine if there is a locked vertex. If there is a locked vertex, a value is adjusted down toward the leaves from the locked vertex, wherein adjusting down includes computing a value for a leaf associated with the locked vertex.
According to another aspect of the present invention, a system and method of adjusting a value within a database configured as a multidimensional aggregation tree (MAT) having a plurality of leaves includes modifying a value associated with a vertex, adjusting down toward the leaves of the MAT, wherein adjusting down includes computing a value for a leaf associated with the modified vertex and reconciling up through the tree from the leaf to determine if there is a locked vertex. If there is a locked vertex, the method includes adjusting down toward the leaves from the locked vertex, wherein adjusting down includes computing a value for a leaf associated with the locked vertex, and propagating the values computed for the leaves up the tree.
According to yet another aspect of the present invention, a system and method of reporting data stored within a data warehouse includes providing a computer with server and a memory device, storing a database in the memory device, wherein the database includes a plurality of data entries, extracting a subset of data entries from the database, storing the subset of data entries on the server, modifying the data entries stored on the server in response to user commands, propagating the modifications in order to form a multidimensional aggregation tree (MAT), reading data from the modified data entries stored on the server and displaying the data to the user.
According to yet another aspect of the present invention, a database system includes a data warehouse and a computer connected to the data warehouse. The computer adjusts a value associated with a first vertex within a multidimensional aggregation tree (MAT), wherein the MAT includes a plurality of leaves attached to vertices. Adjusting includes adjusting down from the first vertex toward the leaves of the MAT, wherein adjusting down includes computing a value for a leaf associated with the vertex, reconciling up through the tree from the leaf to determine if there is a locked vertex and if there is a locked vertex, adjusting down toward the leaves from the locked vertex, wherein adjusting down includes computing a value for a leaf associated with the locked vertex.